home *** CD-ROM | disk | FTP | other *** search
/ NeXT Education Software Sampler 1992 Fall / NeXT Education Software Sampler 1992 Fall.iso / Programming / Classes / ObjDB / common.make < prev    next >
Encoding:
Text File  |  1992-07-30  |  4.6 KB  |  162 lines

  1. VPATH = $(OFILE_DIR)
  2.  
  3. .SUFFIXES: .m .o .c .psw .pswm .subproj .clean .install .installsrc .depend
  4. .c.o:
  5.     $(CC) $(_CFLAGS) -c $*.c -o $(OFILE_DIR)/$*.o
  6. .m.o:
  7.     $(CC) $(_CFLAGS) $(OBJCFLAGS) -c $*.m -o $(OFILE_DIR)/$*.o
  8. .psw.h:
  9.     $(PSWRAP) $(PSWFLAGS) -a -h $*.h -o $*.c $*.psw
  10. .psw.o:
  11.     $(PSWRAP) $(PSWFLAGS) -a -h $*.h -o $*.c $*.psw
  12.     $(CC) $(_CFLAGS) -c $*.c -o $(OFILE_DIR)/$*.o
  13. .pswm.h:
  14.     $(PSWRAP) $(PSWFLAGS) -a -h $*.h -o $*.m $*.pswm
  15. .pswm.o:
  16.     $(PSWRAP) $(PSWFLAGS) -a -h $*.h -o $*.m $*.pswm
  17.     $(CC) $(_CFLAGS) $(OBJCFLAGS) -c $*.m -o $(OFILE_DIR)/$*.o
  18. .subproj.o:
  19.     (cd $*.subproj; $(MAKE) ofiles "NAME=$*" "_CFLAGS=$(_CFLAGS)" \
  20.         "OFILE_DIR = $(OFILE_DIR)" "LIBS=")
  21. .subproj.h:
  22.     (cd $*.subproj; $(MAKE) headers "NAME=$*")
  23. .subproj.clean:
  24.     (cd $*.subproj; $(MAKE) clean "NAME=$*" "OFILE_DIR=$(OFILE_DIR)")
  25. .subproj.depend:
  26.     (cd $*.subproj; $(MAKE) depend "NAME=$*")
  27. .subproj.installsrc:
  28.     (cd $*.subproj; $(MAKE) installsrc \
  29.         "NAME=$*" "SRCROOT=$(SRCROOT)/$*.subproj" \
  30.         "SOURCEMODE=$(SOURCEMODE)")
  31.  
  32. $(NAME).installsrc:: SRCROOT $(SRCROOT)
  33.     tar cf - $(SRCFILES) | (cd $(SRCROOT); tar xf -)
  34.     @supportfiles=""; \
  35.     for i in $(SUPPORTFILES) none ; do \
  36.         if [ -r $$i -a ! -r $(SRCROOT)/$$i ] ; then \
  37.         supportfiles="$$supportfiles $$i"; \
  38.         fi; \
  39.     done ; \
  40.     echo "tar cf - $$supportfiles | (cd $(SRCROOT); tar xf -)"; \
  41.     tar cf - $$supportfiles | (cd $(SRCROOT); tar xf -); \
  42.     (cd $(SRCROOT); \
  43.         echo "chmod files to $(SOURCEMODE)"; \
  44.         chmod $(SOURCEMODE) $(SRCFILES) $$supportfiles)
  45.  
  46. $(NAME).list:
  47.     @enscript $(CLASSES) $(SRCFILES) $(DATA_FILES) $(OTHER_PRODUCT_DEPENDS)
  48.     
  49. DATE:
  50.     @if [ -n "${$@}" ]; then exit 0; \
  51.     else echo Must define $@; exit 1; fi
  52.     
  53. DATE1:
  54.     @if [ -n "${$@}" ]; then exit 0; \
  55.     else echo Must define $@; exit 1; fi
  56.     
  57. DATE2:
  58.     @if [ -n "${$@}" ]; then exit 0; \
  59.     else echo Must define $@; exit 1; fi
  60.  
  61. TARFILES = $(SRCFILES) $(CLASSES) $(DATA_FILES) Makefile \
  62.             $(HELP_FILES) $(OTHER_PRODUCT_DEPENDS)
  63.  
  64. $(NAME).tar:: DATE
  65.     @tar cf - $(TARFILES) | \
  66.     (cd $(TARFILEDIR) ; compress > $(NAME).$(DATE).tar.Z )
  67.     
  68. $(NAME).untar:: DATE
  69.     @(cd $(TARFILEDIR) ; zcat $(NAME).$(DATE).tar.Z ) | \
  70.     tar -xf - 
  71.     
  72. $(NAME).tarlist:: DATE
  73.     @(cd $(TARFILEDIR) ; zcat $(NAME).$(DATE).tar.Z ) | \
  74.     tar -tf -
  75.     
  76. $(NAME).xtract:: DATE
  77.     @(cd $(TARFILEDIR) ; zcat $(NAME).$(DATE).tar.Z ) | \
  78.     tar -xf - $(LIST)
  79.     
  80. $(NAME).tardir:
  81.     @cd $(TARFILEDIR) ; /bin/ls $(NAME).*.tar.Z 
  82.     
  83. $(NAME).tardiff:: DATE1 DATE2
  84.     @/bin/rm -rf /tmp/tar.$(DATE1); \
  85.     /bin/rm -rf /tmp/tar.$(DATE2); \
  86.     /bin/rm  /tmp/tarlist ; \
  87.     mkdir /tmp/tar.$(DATE1); \
  88.     mkdir /tmp/tar.$(DATE2); \
  89.     (cd $(TARFILEDIR); zcat $(NAME).$(DATE1).tar.Z ) | \
  90.     (cd /tmp/tar.$(DATE1); tar -xf - ) ; \
  91.     (cd $(TARFILEDIR); zcat $(NAME).$(DATE2).tar.Z ) | \
  92.     (cd /tmp/tar.$(DATE2); tar -xf - ) ; \
  93.     (cd /tmp/tar.$(DATE1); ls $(TARFILES) ) > /tmp/tarlist ; \
  94.     (cd /tmp/tar.$(DATE2); ls $(TARFILES) ) >> /tmp/tarlist ; \
  95.     for i in `cat /tmp/tarlist | sort -u` ; do    \
  96.     diff /tmp/tar.$(DATE1)/$i /tmp/tar.$(DATE2)/$i ; \
  97.     done 
  98.     
  99. $(NAME).test:
  100.     @$(NAME) | diff - $(TEST_OUT)
  101.  
  102. $(NAME).lib:: all
  103.         @/bin/rm lib$(NAME).a; \
  104.         for i in `ls $(OFILE_DIR)` ; do \
  105.             ld -r -x $(OFILE_DIR)/$$i ; \
  106.             mv a.out $(OFILE_DIR)/$$i ; \
  107.             ar q lib$(NAME).a $(OFILE_DIR)/$$i; \
  108.         done ; \
  109.         ranlib lib$(NAME).a
  110.  
  111. $(NAME).install:
  112.     @if [ ${APPWRAPPER} ] ; then \
  113.         echo install $(INSTALLFLAGS) $(NAME).app $(DSTROOT)$(INSTALLDIR); \
  114.         mkdirs $(DSTROOT)$(INSTALLDIR)/$(NAME).app ; \
  115.         chmod 755 $(DSTROOT)$(INSTALLDIR)/$(NAME).app ; \
  116.         install $(INSTALLFLAGS) $(NAME) $(DSTROOT)$(INSTALLDIR)/$(NAME).app; \
  117.         if [ ${NOMACHO} ] ; then  \
  118.         install -c -m 644 $(INTERFACES) $(TIFFFILES) $(EPSFILES) $(SNDFILES) \
  119.             $(DSTROOT)$(INSTALLDIR)/$(NAME).app ; \
  120.         fi ; \
  121.     else \
  122.         echo install $(INSTALLFLAGS) $(NAME) $(DSTROOT)$(INSTALLDIR) ; \
  123.         install $(INSTALLFLAGS) $(NAME) $(DSTROOT)$(INSTALLDIR) ; \
  124.     fi;
  125.  
  126. $(NAME).clean::
  127.     @if [ ! -w . ] ; then echo '***' `pwd` 'not writable'; exit 1 ; fi
  128.     -rm -rf $(GARBAGE)
  129.  
  130. $(OFILE_DIR):
  131.     mkdirs $(OFILE_DIR)
  132.  
  133. SRCROOT:
  134.     @if [ -n "${$@}" ]; then exit 0; \
  135.     else echo Must define $@; exit 1; fi
  136.  
  137. $(SRCROOT)::
  138.     -rm -rf $(SRCROOT)
  139.     mkdirs $(SRCROOT)
  140.     chmod 755 $(SRCROOT)
  141.  
  142. diff: SRCROOT
  143.     @echo Compare directories: `pwd` and $(SRCROOT)
  144.     @csh -f -c "diff -r `pwd` $(SRCROOT); exit 0"    
  145.  
  146.  
  147. Makefile.dependencies:: $(CLASSES) $(MFILES) $(CFILES)
  148.     -rm -f Makefile.dependencies
  149.     $(CC) -MM $(CFLAGS) $(CLASSES) $(MFILES) $(CFILES) | \
  150.         awk '{ if ($$1 != prev) { if (rec != "") print rec; \
  151.         rec = $$0; prev = $$1; } \
  152.         else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
  153.         else rec = rec " " $$2 } } \
  154.         END { print rec }' > Makefile.dependencies
  155.  
  156. $(DSTROOT)$(INSTALLDIR):
  157.     mkdirs $(DSTROOT)$(INSTALLDIR)
  158.  
  159.  
  160. help::
  161.     @echo '  diff SRCROOT=somepath'
  162.